package com.info.pdf.base;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;

import org.apache.commons.io.FilenameUtils;

/**
 * @ClassName: MyFileNameExtensionFilter
 * @Description: TODO(文件扩展名过滤器，返回结果不包含文件夹)
 * @author h819
 * @date 2011-2-24
 * @version V1.0
 */

// 用法
// 得到所有的符合扩展名条件的条件的文件名，如果是文件夹，则直接返回 true
// ArrayList<String> files = MyFileUtils.getFileNames(srcPdfFileDir,
// new MyFileNameExtensionFilter(new String[] { "pdf" }));

public class MyFileNameExtensionFilter implements FilenameFilter {

	String[] temp;

	public MyFileNameExtensionFilter(String[] fileNameExtension) {

		temp = fileNameExtension;
	}

	/**
	 * dir - 被找到的文件所在的目录。 
	 * 
	 * name - 文件的名称。
	 */
	public boolean accept(File dir, String name) {
		// TODO Auto-generated method stub

		// System.out.println("dir :" + dir);
		// System.out.println("name :" + name);
		//
		// System.out.println("dir + name :" + dir.getAbsolutePath()
		// + File.pathSeparator + name);

		// 不进行过滤
		if (temp == null || temp.length == 0)
			return true;

		// 如果是文件夹，直接返回结果
		if (new File(dir.getAbsolutePath() + File.separator + name)
				.isDirectory())
			return true;

		for (String extention : temp) {

			if (FilenameUtils.getExtension(name).toLowerCase().equals(
					extention.toLowerCase()))
				return true;
		}

		return false;
	}

}
